# -*- coding: UTF-8 -*-
"""
@File    ：4.类型注解.py
@Author  ：techPang
@Date    ：2025/2/6 15:39 
@Version ：1.0

在python3.5中引入了类型注解，只起说明作用，没有决定性作用
支持:
    变量的类型注解
    方法形参列表和返回值的类型注解
语法:
    变量:类型
"""
import random
from typing import Union

# 基础类型
var_1: int = 10
var_2: float = 3.14
var_3: bool = True
var_4: str = "czt"


# 对象类型
class Student:
    pass


stu: Student = Student()

# 容器类型
my_list: list = [1, 2, 3, 4, 5]
my_tuple: tuple = (1, 2)
my_list2: list[Union[int, float]] = [1, 2, 3.2]  # 可以详细规定里面的类型
my_dict: dict[str, Union[str, int]] = {"name": "czt", "age": 23}

# 注释注解，使用type: 类型可以实现注释添加注解的效果
var_5 = random.randint(1, 10)  # type: int


# 在方法中使用，入参
def add(x: int, y: int):
    return x + y


# 在方法中使用，返回值
def subtract(x, y) -> int:
    return x - y


def func(data: Union[int, str]) -> Union[int, str]:
    return data
